FROM golang:1.19

MAINTAINER zydh "1138552759@qq.com"

#go项目已经被打包成二进制文件，所以不需要配置什么环境
#1.只需要把项目文件拷贝到镜像里
#2.把web上传图片的文件夹-v 到主机的/home/zydh/docker/www/项目下
#3.把conf.ini文件-v 到主机
#4.运行 go run  程序


#指定环境变量，可在docker run -e 修改
ENV WORKDIRPATH /home/zydh/docker/www/dockfile_test
ENV VOLUMEPATH /home/zydh/docker/volume

#创建目录，用于保存项目文件
RUN mkdir -p $WORKDIRPATH
RUN mkdir -p $VOLUMEPATH/dockfile_test/static
RUN mkdir -p $VOLUMEPATH/dockfile_test/conf
#RUN chomd r+x /go-dockfile_test-admin


#工作目录
WORKDIR $WORKDIRPATH

#COPY 这是一个复制命令，把本地的所有文件复制到工作目录下。
#把Dockerfile同级目录所有文件拷贝到上面设置的容器的工作目录中
COPY . .


RUN chmod +x "./bin/dft"  #---dft  是go build 编译后的二进制文件

#v数据卷/数据持久化 此处的挂载失败，原因暂无，直接使用docker run -v 时，挂载
#Dockerfile中 VOLUME 方式挂载到宿主机上的是匿名卷，在宿主机上是自动匿名挂载到 /var/lib/docker/volumes/ 目录下的
#把static文件下的内容同步到本机
#VOLUME ["$VOLUMEPATH/dockfile_test/static:/static"] #x
#把conf文件夹下的内容同步到本地
#VOLUME ["$VOLUMEPATH/dockfile_test/conf","/conf"] #x
VOLUME ["/static","/conf"]


EXPOSE 8080

CMD echo $WORKDIRPATH
CMD echo $VOLUMEPATH
CMD echo "-----load is end,runing-----"

ENTRYPOINT ["./bin/dft"]